<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>ceShi日期选择</title>
    <link rel="stylesheet" href="../zujian/layui/css/layui.css">
    <script src="../zujian/jqueryAndBootStrap/jquery-3.4.1.min.js"></script>


</head>
<body>

<div class="layui-inline"> <!-- 注意：这一层元素并不是必须的 -->
    <input type="text" class="layui-input" id="ceShiRiQiZuJian001" placeholder="点击获取日期">
    <span id="testView"></span>
    <div id="test2"></div>
</div>
<br/><br/><br/>
<button type="button" class="layui-btn layui-btn-lg layui-btn-normal" onclick="点击测试日期()">点击获取测试日期</button>
<script src="../zujian/layui/layui.all.js"></script>
<!--
类型：String，默认值：date
用于单独提供不同的选择器类型，可选值如下表：
type可选值	名称	用途
year	年选择器	只提供年列表选择
month	年月选择器	只提供年、月选择
date	日期选择器	可选择：年、月、日。type默认值，一般可不填
time	时间选择器	只提供时、分、秒选择
datetime	日期时间选择器	可选择：年、月、日、时、分、秒
-->
<script>
    layui.use('laydate', function(){
        let laydate = layui.laydate;
        //执行一个laydate实例
        var ins1=laydate.render({
            //     类型：Boolean/String，默认值：false
            // 如果设置 true，将默认采用 “ - ” 分割。 你也可以直接设置 分割字符。五种选择器类型均支持左右面板的范围选择。
            //range:'~',//两个面板进行从一个日期到另一个日期的范围选择


        //     year	年选择器	只提供年列表选择
        //     month	年月选择器	只提供年、月选择
        // date	日期选择器	可选择：年、月、日。type默认值，一般可不填
        // time	时间选择器	只提供时、分、秒选择
        // datetime	日期时间选择器	可选择：年、月、日、时、分、秒
            type:'datetime',
        //     yyyy-MM-dd HH:mm:ss	2017-08-18 20:08:08
        // yyyy年MM月dd日 HH时mm分ss秒	2017年08月18日 20时08分08秒
        // yyyyMMdd	20170818
        // dd/MM/yyyy	18/08/2017
        // yyyy年M月	2017年8月
        // M月d日	8月18日
        // 北京时间：HH点mm分	北京时间：20点08分
        // yyyy年的M月某天晚上，大概H点	2017年的8月某天晚上，大概20点
            format:'yyyy-MM-dd HH:mm:ss'
            //设置默认值
            //必须遵循format参数设定的格式
            // ,value: '2018-08-18 12:23:22'
            //参数即为：2018-08-20 20:08:08 的时间戳 也可以
            // ,value: new Date(1534766888000)
            // ,value:new Date()
            ,trigger: 'click' //采用click弹出

            ,isInitValue: true //是否允许填充初始值，默认为 true
            // min/max - 最小/大范围内的日期时间值,也就是说界面只能选择该范围以内的日期
            // ,min: '2017-1-1'
            // ,max: '2017-12-31'
            // //日期有效范围限定在：过去一周到未来一周
            // ,min: -7 //7天前
            // ,max: 7 //7天后
            //日期时间有效范围的设定:
            ,min: '2017-8-11 12:30:00'
            ,max: '2057-8-18 12:30:00'
            //时间有效范围设定在: 今天上午九点半到下午五点半
            // ,min: '09:30:00'
            // ,max: '17:30:00'
            //,show: true //直接显示
            //,closeStop: '#test1' //这里代表的意思是：点击 test1 所在元素阻止关闭事件冒泡。如果不设定，则无法弹出控件


            ,elem: '#ceShiRiQiZuJian001'
           // ,elem: '#testView' //指定元素//用于position: 'static'
//             abolute	绝对定位，始终吸附在绑定元素周围。默认值
//         fixed	固定定位，初始吸附在绑定元素周围，不随浏览器滚动条所左右。一般用于在固定定位的弹层中使用。
// static	静态定位，控件将直接嵌套在指定容器中。
// 注意：请勿与 show 参数的概念搞混淆。show为 true 时，控件仍然是采用绝对或固定定位。而这里是直接嵌套显示
            ,position: 'abolute'
        //     类型：Number，默认值：66666666
        // 一般用于解决与其它元素的互相被遮掩的问题。如果 position 参数设为 static 时，该参数无效。
            ,zIndex: 99999999
        //     类型：Boolean，默认值：true
        // 如果设置 false，将不会显示控件的底部栏区域
            ,showBottom: true
        //     类型：Array，默认值：['clear', 'now', 'confirm']
        // 右下角显示的按钮，会按照数组顺序排列，内置可识别的值有：clear、now、confirm
            ,btns: ['clear', 'now','confirm']
            //我们内置了两种语言版本：cn（中文版）、en（国际版，即英文版）。这里并没有开放自定义文字，是为了避免繁琐的配置。
            ,lang: 'zh'
            // 我们内置了多种主题，theme的可选值有：default（默认简约）、molv（墨绿背景）、#颜色值（自定义颜色背景）、grid（格子主题）
            ,theme: 'grid'
            //我们内置了一些我国通用的公历重要节日，通过设置 true 来开启。国际版不会显示。
            ,calendar: true
            //calendar 参数所代表的公历节日更多情况下是一个摆设。因此，
            // 我们还需要自定义标注重要日子，比如结婚纪念日？日程等？它分为以下两种：
            ,mark: {
                '0-9-18': '国耻'
                ,'0-10-14': '生日'
                ,'0-12-31': '跨年' //每年12月31日
                ,'0-0-10': '工资' //每个月10号
                ,'2017-8-15': '' //具体日期
                ,'2017-8-20': '预发' //如果为空字符，则默认显示数字+徽章
                ,'2017-8-21': '发布'
            },done: function(value, date){//点击确定后回调
                //点击2017年8月15日，弹出提示语
                if(date.year === 2020 && date.month === 2 && date.date === 4){
                    layer.tips('中国人民抗日战争胜利72周年', '#ceShiRiQiZuJian001',{tips:2,time:1500})
                }
            }
            //得到初始的日期时间对象：{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
            //控件在打开时触发，回调返回一个参数：初始的日期时间对象
            ,ready: function(date){
                layer.tips(JSON.stringify(date), '#ceShiRiQiZuJian001',{tips:2,time:1500,area: ['390px', 'auto']})
            }
            // 日期时间被切换后的回调,就是点击界面切换日期后,而不是点击确定填入input之后
            // 年月日时间被切换时都会触发。回调返回三个参数，分别代表：生成的值、日期时间对象、结束的日期时间对象
            ,change:function(value, date, endDate){
                ins1.hint(value); //在控件(就是选择面板上)上弹出value值
                console.log(value); //得到日期生成的值，如：2017-08-18
                console.log(date); //得到日期时间对象：{year: 2017, month: 8, date: 18, hours: 0, minutes: 0, seconds: 0}
                console.log(endDate); //得结束的日期时间对象，开启范围选择（range: true）才会返回。对象成员同上。
            } //当点击时间改变的时候  #testView  里面的时间就改变
            // ,change: function(value, date){ //监听日期被切换
            //     //date是value的对象格式 可以date.year,date.month,date.date来用
            //     //value就是改变后的时间
            //     lay('#testView').html(value);
            // }
        });
    });

    //如果你不是采用 layui 或者普通 script 标签方式加载的 laydate.js，而是采用 requirejs 等其它方式引用 laydate，
    // 那么你需要设置基础路径，以便 laydate.css 完成加载。
    //laydate.path = '/static/xxx/'; //laydate.js 所在目录
    //配置好路径后，再调用
    //laydate.render(options);


    //其它方法
    // 获取指定年月的最后一天，month默认为当前月，year默认为当前年。如：
    // var endDate1 = laydate.getEndDate(10); //得到31
    // var endDate2 = laydate.getEndDate(2, 2080); //得到29
    // laydate.getEndDate(month, year)

    function 点击测试日期() {
        layer.alert($('#ceShiRiQiZuJian001').val())
    }
</script>
</body>
</html>